iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0

目標先講清楚:
我要做一個「能看圖、會記憶」的智慧助理
Input:語音/文字/圖片;Output:文字/語音。
並且要能即時互動(real-time)


為什麼是「即時」?

傳統輪詢式 API(請求→回應)遇到語音、長連線、多使用者很快會卡。
我需要的是低延遲、多模態、可長連線的體驗:講一句話、丟一張圖,助理就能立刻理解、回覆並持續「在線」。


三條路線的技術選擇

我先把常見方案放在同一張圖表裡,比較定位、上手程度、可擴展性、費用四個面向:

面向 OpenAI TTS/Realtime Gemini Live API LiveKit
定位 / 模型相容性 官方 Realtime API(WebRTC/WebSocket) + TTS;直連 OpenAI 即時/音訊模型(如 gpt-realtime、GPT 家族)。 Google 的即時多模態介面(WebRTC/WebSocket),鎖定 Gemini。 實時媒體基礎設施(SFU)+ Agents 框架;前後端提供 SDK;模型無關、可插換,官方支援「多家供應商/多款模型」。
上手程度 有 Realtime Quickstart,文件完整。 有官方文件參考;也可透過合作平台簡化媒體處理。 Agents(Node.js/Python) 與文件快速入門;需理解 RTC/房間/軌道 等概念。
費用 / 計費 token 計費(文字/音訊/影像有別;輸入/輸出分開計)。 免費層;付費同樣以 每百萬 token 計價。 框架開源,自建(OSS)不含模型費,但需自負基礎設施;LiveKit Cloud 依用量計價(代理會話分鐘、傳輸等)。

參考:OpenAI Realtime/TTS、Google Gemini Live API、LiveKit Docs 與 Pricing(文末附連結)


我的決策:為什麼選 LiveKit?

一句話:我希望媒體傳輸與多方即時連線交給專業的基礎設施,而模型層保持可插拔,之後要換 OpenAI/Gemini、或加上本地模型都不痛苦。

具體三點

  1. 模型相容性高:不被單一供應商綁住,雲端或地端模型都能接。
  2. 支援 LangGraph:便於我把多步驟推理、工具呼叫、記憶等流程做成可維護的圖(graph)。
  3. 支援接口多:包含 agent 模組、STT 模組、TTS 模組,方便調整。

架構藍圖(極簡版)

架構圖

  • 用戶端(瀏覽器/行動裝置)LiveKit(WebRTC SFU):前端提供多語言 SDK(JavaScript, Swift, Kotlin 等)
  • LiveKit Agent(Node/Python):連接 LLM / TTS / STT / 記憶
  • 模型與工具:OpenAI / Gemini / 其他供應商、向量資料庫、檔案工具、圖像理解等

好處是:即時性智能清楚分層,哪層要換都很乾淨。


實作手記:不到 50 行就跑起來

跟著這支 YouTube 教學與示例程式碼,我用不到 50 行就做出第一個能說話的 Agent。
特別有感的是——LiveKit 的 Agents 框架把接口都開好了

  • 你把程式註冊成「會議房間裡的一位參與者」
  • 收到音訊軌、文字資料 → 丟去模型處理
  • 產生回應後 → 直接以語音/文字回到房間

代碼截圖:
代碼截圖


距離目標還差什麼?

圖片理解(Vision)記憶是兩個關鍵拼圖。

  • Vision:把「讀取圖片」能力串進 Agent(上傳/擷取畫面 → 模型視覺理解 → 回傳語音/文字)。
  • 持久記憶:接一個向量庫或 KV 存儲,讓助理能「記住之前的事」,並在對話中自動取用。(留到第二階段)

我會在現有骨架上加一個圖片理解模組,基本就完成 50% 的雛形


下一步(Day 3 預告)

Default(3/5)—— 用 LiveKit 替服務加上「圖片理解」功能。
把 Vision 接進既有語音互動流程,測一次完整體驗。


參考資源

另:官方網站都持續更新,實際費率與可用模型以文件為準。


上一篇
Day 1|來做個會說話的圖片識別小幫手(1/5)
下一篇
Day 3|為服務加上視覺模組(3/5)
系列文
從讀書筆記到可落地 AI:LangChain、LangSmith 與 Agent 工具 30 講4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言